package com.rocbrid.common;

import lombok.Data;

/**
 * 通用返回参数
 * @param <T>
 */
@Data
public class R<T> {

    private Integer code;
    private String msg;
    private T data;

    public  static R ok() {
        R tr = new R();
        tr.setCode(200);
        tr.setMsg("成功");
        return tr;
    }
    public  static<T> R<T> ok(T data) {
        R<T> tr = new R<>();
        tr.setCode(200);
        tr.setMsg("ok");
        tr.setData(data);
        return tr;
    }
    public  static<T> R<T> ok(String msg) {
        R<T> tr = new R<>();
        tr.setCode(200);
        tr.setMsg(msg);

        return tr;
    }

    public  static<T> R<T> ok(String msg,T data) {
        R<T> tr = new R<>();
        tr.setMsg(msg);
        tr.setData(data);
        return tr;
    }

    public  static R error() {
        R tr = new R();
        tr.setCode(500);
        tr.setMsg("失败");
        return tr;
    }

    public  static R error(String msg) {
        R tr = new R();
        tr.setCode(500);
        tr.setMsg(msg);
        return tr;
    }

    public  static<T> R<T> error(Integer code,String msg) {
        R<T> tr = new R<>();
        tr.setCode(code);
        tr.setMsg(msg);
        return tr;
    }
    public  static<T> R<T> error(Integer code,String msg,T data) {
        R<T> tr = new R<>();
        tr.setCode(code);
        tr.setMsg(msg);
        tr.setData(data);
        return tr;
    }
}
